In hosted computer applications servicing a large number of customers on shared hardware (referred to as a multi-tenant system), where requests for processing are asymmetric, a need to process longer running requests at different priorities may arise. Furthermore, the servicing of multiple customers on shared hardware requires that the system behave ‘fairly’ with respect to handling requests from different customers.
Customer Relationship Management (CRM) solutions provide tools and capabilities needed to create and maintain a clear picture of customers, from first contact through purchase and post-sales, typically in a hosted computer application environment. For complex organizations, a CRM system may provide features and capabilities to help improve the way sales and marketing organizations target new customers, manage marketing campaigns, and drive sales activities. CRM systems may include many components, hardware and software, utilized individually or in a shared manner by users internal or external to the organization.
Thus, a typical CRM system that hosts multiple customers (“tenants”) may process a large number of requests for data from a variety of data sources utilizing a plurality of servers. With at least a portion of the data stores and/or servers being dedicated to particular tasks or tenant organizations, providing reliable service with optimized performance is a challenging task.